"""
自定义一个请求的钩子 在请求进来之前得到token，并且验证token  保存到g中
"""
from flask import request, g, current_app

from comment.utils.token_pyjwt import check_uid


def jwt_token_autho():
    """
    钩子函数
    验证token
    :param token:
    :return:
    """
    # g中的用户id默认为None
    # 从请求头中获取token
    g.user_id = None
    try:
        token = request.headers.get('token')
    except Exception as e:
        current_app.logger.info('headers中没有token')
        return

    # 对token进行解密
    result = check_uid(token)
    if 'id' in result:  # 如果id在解密的结果中，则代表验证成功
        g.user_id = result['id']
